Proxy Workbench

Welcome to Proxy Workbench!

Proxy Workbench is a revolutionary proxy server from tcpIQ. Proxy server's generally hide all of the details away, silently transmitting their data and logging to files for analysis at the end of the month. Proxy Workbench turns this inside out and puts the data where you want it - there on the screen, in real-time and in the most graphic of detail.

Proxy Workbench is being used around the world in small and large business and in the private and public sector. It is being used to test communications for the US Navy, to aid the development of new printers at Hewlett-Packard through to training people on the intricacies of FTP and SMTP communications in IT training centers around the world.

This Help has been designed to help you use and configure Proxy Workbench. But more importantly, this Help has been designed to help people understand the Internet, to describe how computers communicate and to shed light on one of the most interesting areas of information technology. You will find information on protocols, basic socket theory and how your email client, ftp client and web browsers really work.

If there are any facets of this help that you do not understand or would like more information on then please submit feedback to tcpIQ at out web site at www.tcpIQ.com

- The tcpIQ team


What is a Proxy Server?

A proxy server is simply a program that provides an interface between a network and the Internet.

Why would you use a Proxy Server?

A Proxy Server has four main benefits:

Security: Proxy servers provide a level of security within a network. They can help prevent security attacks as the only way into the network from the Internet is via the proxy server.

Logging: Proxy Servers can log the information passing through them. Generally, this information is written to a file and can be analyzed at a later date. However, Proxy Workbench provides for real-time logging of information. All of the information passing through Proxy Workbench can be displayed to the screen and logged to a file. In addition, the details of the communications can be analyzed to the minutest detail.

Caching: Many proxy servers cache (or buffer) the information that passes through them. Often, information being sought has already been previously accessed so if a proxy server simply serves the cached information then it can lead to speed and cost benefits. (Proxy Workbench does not provide any caching functionality.)

Internet connection sharing: On a small network, there may be only one machine connected to the Internet via a modem but all other machines still need Internet access. A proxy server enables these other machines to initially connect to the Internet enabled machine and then on to the Internet. The Internet Connection Sharing now found in Microsoft's operating systems does not use a proxy server. Rather, it utilizes NAT (Network Address Translation) which operates at a much lower level then does a proxy server. However, at this low level it is not possible to provide the advanced analysis provided by Proxy Workbench.


Who Benefits

Who Benefits from Proxy Workbench?

People who benefit from Proxy Workbench are:

  • Home users who have taken the first step in understanding the Internet and are starting to ask, "But how does it work?".

  • People who are curious about how their web browser, email client or FTP client communicates with the Internet.

  • People who are concerned about malicious programs sending sensitive information out into the Internet. The information that programs are sending can be readily identified.

  • Internet software developers who are writing programs to existing protocols. Software development for the Internet is often very complex especially when a program is not properly adhering to a protocol. Proxy Workbench allows developers to instantly identify protocol problems.

  • Internet software developers who are creating new protocols and developing the client and server software simultaneously. Proxy Workbench will help identify non-compliant protocol handling.

  • Internet Security experts will benefit from seeing the data flowing in real-time. This will help them see who is doing what and when.


Why Would You Use Proxy Workbench?

Proxy servers generally sit in your system plodding away not telling you what they are doing.

Proxy Workbench changes this. Not only is it an awesome proxy server, but you can see all of the data flowing through it, visually display a socket connection history and save it to HTML.

It allows you to 'see' how your email client communicates with the email server, how web pages are delivered to your browser and why your FTP client is not connecting to its server.

And now, Proxy Workbench includes connection failure simulation strategies. What this means is that you can simulate a poor network, a slow Internet or un unresponsive server. This is makes it the definitive TCP application tester.


Sockets

To understand Proxy Workbench you must understand "sockets". An introduction and refresher follow for those unfamiliar with Sockets.

All communications on the Internet use "sockets". A socket is a connection between two computers. (For the sake of people in the know, I will only be describing TCP sockets.) Creating a socket is much like a telephone call. One computer called the client, attempts to call another computer called the server. The server can either accept or reject this connection request. If the server accepts the connection request then a socket connection is said to have been established.

A client attempting to establish a socket connection with a server needs to provide two things: the name or IP address of the computer it is attempting to communicate with and a port number. A server 'listens' for incoming socket connections on 'ports'. Ports are given a number in the range from 1 to 65535. Ports are generally not randomly assigned. Rather there are 'well-defined ports' in which the Internet community have declared as being set aside for special purposes.

For example, web servers communicate on port 80 and you generally send email on port 25.

Once a socket connection is established, the client and the server can both send and receive data simultaneously. A socket is a bi-directional communication link. It is unusual for both to communicate at the same time. When a client and a server commutate, it generally works by one party sending some information, the other listening, deciding what to do and then replying.


Understanding Sockets

Many people understand sockets much better then they think. When you surf the web and go to a web site called www.altavista.com, you are actually directing your web browser to open a socket connection to the server called "www.altaviata.com" with port number 80. If the connection is successfully established then your web browser will report "Web Site found. Waiting for data". Your web browser then sends some information to the web server identifying the page that is being sought. The web server then sends the HTML for that page. Interestingly, if a page contains graphics, then the web browser establishes another socket connection for each graphic that is required.

Examples of software that are socket clients:

  • A web browser
  • Email software
  • FTP
  • Netmeeting
  • Napster or any file sharing software.

Examples of socket server software:

  • A web server
  • An email server
  • An FTP server
  • The Napster server.

Some Well-Known port numbers:

  • 25 SMTP - sending email
  • 110 POP3 - receiving email
  • 80 HTTP - web communications
  • 443 HTTPS - secure web communications


Configuring Proxy Workbench

The configuration of Proxy Workbench is not fully automatic. You will need to change some settings on your client software to convince it to connect to a proxy server rather then connecting straight to the Internet.

We have endeavored to make the procedure as simple as possible and the user interface intuitive. Refer to the following topics for more information about specific protocols.

In addition, background information has been supplied for all of the protocols. This will help you to better understand what is happening when things go wrong. Don't forget if something does not work then there is one ultimate tool for debugging your problem - Proxy Workbench! Remember it provides full analysis of what is happening. It is inherently self documenting. If a web browser is not connecting to the web, check to see whether it is firstly connecting to Proxy Workbench. If it is connecting to Proxy Workbench, look at the connection diagram to find out what is going wrong.

If this does not help then save your connection diagram and email the HTML and its sub directories to support@sigmasolutions.com.au and they will help you analyze your problem.


HTTP Protocol

HTTP is a very simple protocol used to request and transmit web pages.

In its simplest form, a web browser (the client) establishes a connection to a web server. Once the connection is established, the client transmits a header requesting a web page. The contents of the web page (HTML) is generated by the web server and is then transmitted back over the open socket.

If the web page contains two or more images or other resources then an additional socket connection is created per resource. The first resource is requested on the original socket connection. This technique enables the page's resources to be transmitted in parallel.

Proxy Workbench will readily allow the analysis of this protocol.


Configuring for HTTP

To configure Proxy Workbench to allow it to monitor Web Browsing, select Tools->Configure Ports from the menu.

In the "Ports To Listen On" list, add a port "8080 HTTP Proxy". In the "protocol assigned to port 8080" list, check "HTTP".

If you have to connect to the Internet via another Proxy Server, then these settings are available by clicking the Configure... command button.

To configure your web browser, set its proxy server to point to port 8080 of the name of the computer running Proxy Workbench. You can determine the name of your Proxy Workbench computer by reading it from the panel at the top of the socket connection tree on the main screen of Proxy Workbench. In this instance the name of the computer is "otiose"

In Internet Explorer, the proxy settings can be found by going to Tools->Internet Options->Connections->Lan Settings->Use a Proxy Server.


HTTPS Protocol

HTTPS refers to protocol that handles the secure communications over the Internet. When your web browser visits a HTTPS site it will show a little pad lock in the bottom right-hand corner of the screen.

HTTPS is basically identical to HTTP but all of the communications are encrypted. This means that if the message were to be intercepted then the reader would not be able to gleam any understanding of the transmitted information. Needless to say that this includes Proxy Workbench. When you view HTTPS communications it simply looks like random data.


Configuring for HTTPS

To configure Proxy Workbench to allow it to monitor HTTPS, select Tools->Configure Ports from the menu.

In the "Ports To Listen On" list, add a port "443 HTTP Protocol Over TSL/SSL". In the "protocol assigned to port 443" list, check "HTTPS".

If you have to connect to the Internet via another Proxy Server, then these settings are available by clicking the Configure... command button.

To configure your web browser, set its proxy server's "secure" protocol to point to port 443 of the name of the computer running Proxy Workbench. You can determine the name of your Proxy Workbench computer by reading it from the panel at the top of the socket connection tree on the main screen of Proxy Workbench. In this instance the name of the computer is "otiose"

In Internet Explorer, the proxy settings can be found by going to Tools->Internet Options->Connections->Lan Settings->Use a Proxy Server.


FTP

FTP is a complex protocol that enables files to be transmitted to and from FTP servers.

There is no standard way for FTP to communicate via a proxy server. Rather a number of ad-hoc standards have emerged. Interestingly, RFC959 which defines the FTP standard does not even contain the word 'Proxy'.

Proxy Workbench implements one of the simplest and most popular ways of FTP Proxy server support.


FTP Protocol

The FTP protocol is unusual in that 2 socket connections are required to do what appears to be only one thing.

When you establish an FTP session, a socket is opened from your FTP client software to the FTP server generally on port 21. This is called the "control connection". This socket connection is used to coordinate the download or upload of the files.

The control connection communicates security information (passwords and usernames), various options, settings and messages from the FTP server.

When you request that a file is to be transmitted, it can occur in one of two different modes. They are called Passive (PASV) or Active (sometimes called Port mode)

Passive Mode

When a user requests a file to be transmitted and the FTP client is in PASV mode, the FTP client first sends the message "PASV"  This tells the FTP server that a transmission is about to take place and to get ready. The FTP server readies itself by listening on a random available port and tells the FTP client of this port by replying the following message:

227 Entering Passive Mode (192,168,0,1,7,121)

This says that the FTP server at IP address 192.168.0.1 is listening on port 1923 (7 * 256 + 121). Once the FTP client connects to this end point, data will start to flow.

Active Mode (or Port)

Active mode is opposite to that of Passive mode in that it is the FTP client's responsibility to listen on a port.

When a user requests a file to be transmitted and the FTP client is in Active mode, the FTP client first listens on a random available port and sends the following message on the control connection:

PORT 192,168,0,101,4,49

This tells the FTP server that it may open an FTP connection to FTP client's IP address on 192.168.0.101 on port 1073 (4*256 + 49). Once the FTP server connects, data starts to flow.

Active mode is often unpopular as system administrators generally do not like users internal to their network listening on socket ports that anyone out in the Internet can connect to.


FTP Protocol and Proxy Workbench

There are a number of complications with the FTP protocol and proxy servers but they are all readily overcome.

The first issue is that an FTP client simply wants to connect to an FTP server and it does not know or even care about proxy servers. If an FTP client does connect to a proxy server then there needs to be a way to the tell the proxy server where the FTP client really wants to connect to.

There are about 10 different ways of overcoming this problem. The simplest is that the FTP client sends the user name, it appends the name of the server to connect to after an "@". Proxy workbench seeks out this @ and connects to the computer whose name follows.

For example, I want to connect my FTP client to the FTP server named myftpserver.com with the username of Fred and password of Smith and I want to connect via Proxy Workbench which is running on the computer named myproxyserver.com

The following table show the settings you would use if you were connecting straight to the FTP server as opposed to connecting via Proxy Workbench.

 | Connecting straight to myftpserver.com | Connecting via Proxy Workbench
Server | myftpserver.com | myproxyserver.com
Username | Fred | Fred@myftpserver.com
Password | Smith | Smith

Many FTP clients will allow you to specify a proxy server and the type of connection to use. They will then do this server and username translation for you automatically. For example FTP Voyager refers to it as the "Internet Access Type" and sets it to "UserId = userid@site:port"


Port and Pasv Mapping

In Passive mode, when data is to be transmitted, the FTP server returns with the IP address and port that the FTP client is to connect to. If the FTP client were to receive this information unedited, then the FTP client would connect straight to the FTP server and Proxy Workbench would be circumvented. It would not be possible to analyze the data that is transmitted.

In addition, in Active mode when data is to be transmitted, the FTP client tells the FTP server its IP address and port that has been randomly assigned. If Proxy Workbench were to transmit this information to the FTP server without editing then the FTP server would connect directly with the FTP client and Proxy Workbench would again be circumvented.

In these instances, Proxy Workbench actually edits the information that is passed on to the FTP client or the server. In so doing it creates and listens on an ephemeral port. An ephemeral port is a short lived port (An ephemeral insect is one that lives for only a short period of time) that Proxy Workbench creates for the sake of the FTP protocol. When the information is sent on to the FTP server (in Active mode) and FTP client (for Passive mode) the contents of the PORT and PASV messages are changed to reflect the ephemeral port end point information.

In this way all the data that is transmitted is successfully routed through Proxy Workbench.

In the style of Proxy Workbench, these ephemeral ports are not hidden away but rather displayed so that they may be studied. The ephemeral ports are eventually removed from the screen once the Proxy Workbench buffers fill.

If your buffers are large enough it is possible to save the data from Proxy Workbench that has been transmitted. Select an ephemeral port communication node from the socket tree on the left of the screen and select Tools->Save Data. Save the data and you can view what others have been transmitting over FTP.


Configuring an FTP Client

To configure an FTP client, set the FTP site to the name of the Proxy Workbench computer. You can determine the name of your Proxy Workbench computer by reading it from the panel at the top of the socket connection tree on the main screen of Proxy Workbench. In this instance the name of the computer is "otiose"

Change the username to be your existing username followed by an "@" followed by the name of the FTP server that you wish to connect to. Leave the password field unchanged.

For example, I want to connect my FTP client to the FTP server named myftpserver.com with the username of Fred and password of Smith and I want to connect via Proxy Workbench which is running on the computer named myproxyserver.com

The following table show the settings you would use if you were connecting straight to the FTP server as opposed to connecting via Proxy Workbench.

 | Connecting straight to myftpserver.com | Connecting via Proxy Workbench
Server | myftpserver.com | myproxyserver.com
Username | Fred | Fred@myftpserver.com
Password | Smith | Smith

Many FTP clients will allow you specify a proxy server and the type of connection to use. They will then do this server and username translation for you automatically. For example FTP Voyager refers to it as the "Internet Access Type" and set it to "UserId = userid@site:port"


Pass Through Mode

Pass Through mode is a 'catch all' protocol ideal for software developers and people on the simplest of networks.

Pass Through mode provides for 'port mapping' between a client and its server. Pass Through mode does not provide any routing other than to connect to a pre-defined server. Once a connection is established, Proxy Workbench exactly mirrors the activity of the remote client and server so each behaves as if Proxy Workbench did not exist.

To configure Proxy Workbench to handle Pass Through Mode, go to the configuration window by selecting Tools->Configure Ports. Add a port to listen on and select the Pass Through mode as its protocol. Select the Configure... command button and enter the name of the computer and the port that Proxy Workbench will be connecting to.

In your client software, configure it to connect to the Proxy Workbench machine rather then the intended server. Ensure that it connects to the port that Proxy Workbench is listening on. You can determine the name of your Proxy Workbench computer by reading it from the panel at the top of the socket connection tree on the main screen of Proxy Workbench. In this instance the name of the computer is "otiose"


Where you would use Pass Through Mode

Pass Through Mode is most useful in situations where the server you are connecting to rarely changes. As such it is ideal for analyzing protocols such as:

  • sending and receiving emails (SMTP and POP3)

  • intercepting remote procedure calls (RPCs)

  • communications between n-tier client-server applications

  • Analyzing data flowing between SQL Server Enterprise Manager and an SQL Server (very interesting)

  • File sharing protocols like Napster

  • Intercepting NNTP News Group communications

  • Custom protocols.


POP3 Protocol

The POP3 protocol is the protocol used by most email clients to retrieve email.

This protocol is interesting in that it is the server that first initiates communications when a connection is established. It sends an "+OK" message to the email client which translates to "Who goes there". The email client then sends the user's username. If this is acceptable to the server it sends another "+OK" which translates as "Go on, I am listening". The client then responds with the user's password. Only then after this is accepted and another +OK" is sent back to the client can the client start sending the messages to request the emails.


Configuring for POP3

There are two ways of configuring Proxy Workbench to monitor POP3 traffic. One is to use the POP3 protocol handler and the other is to use the Pass Through Mode protocol handler.

POP3 Protocol Handler

The POP3 protocol handler does not know the location of your POP3 server. As such this information must be provided to it from the email client. Unfortunately, other than the name of the server, the email client only requires a user name and a password. How does Proxy Workbench know where to connect to?

To overcome this problem, simply append a hash ("#") followed by the actually POP3 server to the end of the username. The password does not need to change. In the POP3 server field of your email client, enter the name of the computer running Proxy Workbench. In Proxy Workbench configure port 110 to be assigned to the POP3 protocol.

When the email client connects to Proxy Workbench, Proxy Workbench will request the username from the email client. When it is received, the server will be identified as the text following the hash and a Proxy Workbench will attempt to establish a connection.

 | Connection Straight to the POP3 Server | Connecting via Proxy Workbench
Server | mypop3server.com | myproxyserver.com
Username | Fred | Fred#mypop3server.com
Password | Smith | Smith

Pass Through Protocol Handler

An alternative way to handle POP3 communications is via the Pass Through protocol handler. This protocol simply provides port mapping functionality. This means that Proxy Workbench will mimic the actions of both the client and the server so that neither the client nor the server will even know that Proxy Workbench exists.

In Proxy Workbench, configure port 110 to be assigned to the Pass Through protocol handler. Click "Configure" and type the name of your POP3 server. In your email client simply replace the name of your POP3 server to be the name of the computer running Proxy Workbench. You do not need to modify the username or the password.


Proxy Workbench And Sockets

For Proxy Workbench to intercept the communications between the socket client and the server, the socket client needs to connect to Proxy Workbench instead of the intended server. Proxy Workbench will accept this connection, and then attempt to connect to the appropriate socket server.

The client will then have a virtual connection to the server and act as if Proxy Workbench did not exist.


Internal Design

Proxy Workbench's underlying design is quite simple. When you first install and configure Proxy Workbench, you nominate the ports to listen on. When client software connects to Proxy Workbench, it creates a "Protocol handler" for the associated port. Since FTP is different to HTTP which is different to SMTP, Proxy Workbench requires these protocol handlers that determine what to do with the data.

Each protocol handler has an internal socket server and a socket client. This can become quite confusing. For any socket connection there are two socket clients: the client software and Proxy Workbench's internal socket client and two socket servers: the intended socket server's and Proxy Workbench's internet socket server. This can be seen in the following diagram.

To avoid confusion, the client software's socket client is called the "Remote Client" and the server software's socket server is called the "Remote Server". This terminology is used throughout Proxy Workbench.


Sending and Receiving Data

When data is being transmitted through Proxy Workbench, depending on the speed of your connection and the performance of the client and server software, data can be received into Proxy Workbench but cannot be transmitted because the previous send is still in progress. When this happens, the data is internally buffered and sent when the transmission completes.

This is illustrated in the Connection Diagram Reports by an arrow pointing back on itself.


Connection Handling

Generally Proxy Workbench "mirrors" the connection state. This mean that if the remote client were to disconnect then Proxy Workbench's internal client will also disconnect. This behavior depends to some extent on the protocol but where possible, the socket client should for all intents and purposes think that it is connected to the actual socket server.

Also, if an error is detected on any socket connection then all connections are instantly closed.


User Interface

Main Screen

This section describes the Proxy Workbench user interface and how to use the program.


Menu

The following functionality is available from the menu found at the top of the screen:

File |  |
 | Clear All Data | Removes from memory all data in all connections which have been declared 'Dead'. All connections from protocols that create ephemeral (short lived) ports will also be removed.
 | Exit | Terminate Proxy Workbench
View |  |
 | Event History | When a connection or an event is selected in the Connection Tree, the details pane (top right-hand corner) displays the details of the select object in a grid format.
 | Connection Diagram | When a connection or an event is selected in the Connection Tree, the details pane (top right-hand corner) displays the Connection Diagram.
 | Real Time Data | Display the Real-Time Data Options window that allows you to configure the way the real-time data is displayed.
 | Error Messages | When Proxy Workbench encounters an error, it is logged to the Error Messages window and the window is brought to the front of all other windows. Selecting this option will manually display the Error Messages window.
 | Keep On Top | Check this option to keep Proxy Workbench on top of all other windows.
Tools |  |
 | Save Data | When a connection or an event is selected in the Connection Tree, use this option to save the selected data to a file or generate the HTML that represents the selected connection diagram.
 | Configure Ports | Select this option to configure the socket ports Proxy Workbench is to listen on and to associate a protocol handler to the port.
 | Failure Simulation | This provides advanced techniques used by developers to simulate faulty networks, slow Internet connections and unresponsive servers.
 | Real Time Logging | All data and events can be saved to a file in real time using this option. This information can then be imported into a spreadsheet or database for further analysis.
 | Options | Display various options to configure the way Proxy Workbench behaves and displays data.
Help |  |
 | Contents | To display the Help for Proxy Workbench
 | Registration | If you have not purchased Proxy Workbench, this option allow you to enter your registration number.
 | About | Displays version information, copyright and tcpIQ contact details.

Toolbar

Toolbar provide quick access to the most common menu items. The tool bar can be turned off by going to the Options.

Hover your mouse over the toolbar buttons to reveal their tooltips.


Connection Tree

The Connection Tree is the area on the left of the screen that shows the details of the communications monitored by Proxy Workbench.

The text area immediately above the Connection Tree displays the name of your computer and its IP address. This is useful in configuring your client software. You generally need to provide it with the name of the computer running Proxy Workbench.

The top level of the tree shows the ports that Proxy Workbench is monitoring and a name given to that port. On the next level it shows the IP address of the remote client and the corresponding remote server. If a connection was unsuccessful then the remote server is set as "Error". The name of the these computers are displayed if available.

The next level shows the details of all socket connections that have existed between the particular remote client and the remote server. When a connection is open it is said to be 'Alive'. The time that the connection was established is displayed in parenthesis following 'Alive'. Most protocols only open socket connections for short periods of time and therefore it is most common to see 'Dead' connections. A Dead connection is a connection in which the socket has been closed to both the remote client and the remote server.

The deepest level of the tree shows all of the events that occurred on the socket connection. All of the activity is displayed relative to Proxy Workbench. For example, the descriptions will read like "100 bytes of data received from the remote client". This means that the your client software has sent 100 bytes of data to Proxy Workbench. This event is generally followed by "100 bytes of data has been sent to the remote server" indicating that Proxy Workbench has sent it along to the remote server.

Only one branch of the tree can be opened at once. This feature dramatically improves the performance of Proxy Workbench. Clicking on a node of the tree opens the node's children. Only single clicks are required to navigate the tree.

The left-hand side of the connection diagram shows the remote client's activity. Beneath the client icon is its IP address and the port used to communicate with Proxy Workbench. The name of the remote client is also displayed if available.

The Proxy Workbench icon is in the middle of the Connection Diagram. It shows the port number it is using to communicate with the remote client followed by a ":" and then the port number used to communicate with the remote server. The IP address of the Proxy Workbench and the port that was listening for the remote client's connection request is displayed underneath the "PWB" heading.

The right-hand side shows the details of the remote-server's activity. Beneath the server icon is its IP address and the port used to communicate with Proxy Workbench. The name of the remote server is also displayed if available.


Real Time Data Pane

Select View->Real Time Data to select the particular type of data to be displayed. There are four channels of communication that can be analyzed:

  1. Remote client to PWB
  2. PWB to remote server
  3. Remote server to PWB and
  4. PWB to remote client.

Each type of data is color coded slightly differently so you can better analyze the data in the real-time data pane.

When you select a socket connection from the Socket Connection Tree, the data for the last 20 events is redisplayed. If the connection is still Alive then the real-time data will then be appended. This allows for an analysis of the historical information.

The amount of data displayed in the real-time data pane can be changed by going to the View->Real Time Data.

The real-time data pane can be closed by clicking the Close button at its top right-hand corner or by going to View->Real Time Data. Users can also use this window to format the way the real-time data is displayed.

Displaying real-time data is a CPU intensive task. As such the code to display the real time data has been written in highly optimized C. Depending on the amount of data Proxy Workbench is processing then the real-time data can slow the performance of the entire program. If performance is an issue, it is recommended that the real-time data pane is not displayed. When the pane is not displayed, the processing does not occur.


Status Bar

The status bar shows the details of Proxy Workbench's activity. The first panel displays the amount of data Proxy Workbench currently has in memory. The actual amount of memory that Proxy Workbench is consuming is generally much more than this due to to overhead in managing it.

The sockets panel shows the number of Alive socket connections that Proxy Workbench is managing. During periods of no activity this will drop back to zero.

The events panel displays the total number of events that Proxy Workbench has in memory. By clearing the data (File->Clear All Data) this will decrease to zero if there are no connections that are Alive.

The last panel displays the current time as reported by your operating system.


Details Pane

The details pane is the area at the top right-hand corner of the screen. The contents of the details pane changes depending on what is selected in the Connection Tree.


Connection Summary

In the Connection Tree, if a protocol or a client/server pair are selected, the Details Pane displays the summary information of all of the socket connections that are in progress for the selected item on the Connection Tree.

By double-clicking on a row of this grid, you drill down into the information. Once you drill down into a particular socket connection then the Connection Diagram is displayed.

These columns can be reordered by clicking on the column heading.


Connection Diagram

The Connection Diagram graphically displays the details of the events that occurred on the socket connection. The animated icons tell the story of the activity that took place. The animation can be disabled by going to the Options. This can increase performance.

Clicking on an animation displays the details of the associated event.

The Connection Diagram may run over several pages. Page navigation buttons have been provided at the top right-hand corner of the screen.

The Connection Diagram and its data can be saved by selecting Tools->Save Data. This feature can be especially useful for debugging troublesome protocols. By saving the connection diagram, you can email it to your technical support people for analysis.

The connection diagram can take a second or two to be displayed. During this time a progress indicator is presented to indicate the time required to display the diagram.

Clicking on an event in the Connection Tree will automatically take you to the appropriate event in the Connection Diagram.


Event History

Sometimes it is preferable to see the Connection Diagram information in a tabular format. Select View->Event History to enable this feature and replace the connection diagram with a grid of all of the details. Double clicking on a row of this grid will allow you to drill down into its data.


Real Time Data Options

The real-time data options window displays various options for the display of the real-time data.

The 'Show the real time data window' allows the user to specify whether the real-time data pane should be displayed or not.

Check the options to select the data to be displayed. Depending on the protocol, you may be more interested in the communications between Proxy Workbench and the remote server then Proxy Workbench and the remote client.

Depending on the relative performance of the various software, often Proxy Workbench cannot send data to the destination because either the previous send is still in progress or a connection has yet to be established. You can elect to see the data that is placed in the buffer but it will be displayed again when it is sent.

The color that the data is displayed in can be selected from the View->Real Time Data window.

The Format tab page displays the various options for the format of the real-time data. In ASCII mode, non-printable characters may as blocks if they cannot be printed. Proxy Workbench does its best to display such characters. In addition, use the check boxes to the enable the display of the other supporting information available in the real-time data pane.


Error Window

Occasionally, Proxy Workbench will encounter an error in its operation. Normally it is because you have started Proxy Workbench and there is a conflict on a listening port as seen in this example. When an error occurs it is logged to the non-modal Error Window and the window is brought to the front of the screen.

By being a non-modal window, it allows Proxy Workbench to continue with its normal processing.


Save Data

The Save Data window provides all of the options necessary to save the data for the selected socket communications. The information can be saved as HTML Connection Diagram document, as a raw data file or a text based log file.

If you elect to create a Connection Diagram HTML file then be aware that two subdirectories will be created. One contains the images and the other contains the data and details of each event. This information is displayed when you click on an event.


Configure Proxy Workbench

Use this screen to configure Proxy Workbench to listen on particular ports and then to map a protocols to those ports.

Select Add... to add a port. A list of well-known ports is displayed and a description. Either select a well-known port or enter one yourself.

Select the port to configure from the Ports to listen on list. Select a protocol for that port.

Select Configure... to configure the selected protocol. The configuration screen is different for each protocol.

Select Show this screen at startup if you want this screen to always be displayed when Proxy Workbench starts. If you elect to do this, Proxy Workbench will display the window non-modally so it can start processing instantly.

Refer to help on configuring Proxy Workbench for more information.


Options - Data Purging

Select Discard dead socket connections and events to allow Proxy Workbench to maintain a cap on the size of its buffers. If you do not select this option then there is no limit to the amount of memory that Proxy Workbench will consume.

Retain a maximum of [x] dead socket connections before discarding oldest places a cap on the total number of dead socket connections Proxy Workbench will buffer.

Discard dead socket connection when more than [x] KBytes of memory has been consumed places a cap on the total amount of memory Proxy Workbench will consume before empting its buffers. Note that this number refers to the amount of data buffered, not the amount of memory consumed by Proxy Workbench. The actual amount on consumed memory is significantly higher than this number due to the over head in recording lots of small bits of information.

Keep a maximum of [x] events per connection allows capping of connections that have been opened for a long period of time with lots of activity. This sets the maximum number of events any one connection may have before the buffers start to empty.

Ephemeral connections are created while analyzing the FTP protocol. They are short lived socket connections. Select the last option to automatically unload these connections once they have terminated.


Options - User Interface

Select Show Toolbar to turn the toolbar on and off.

Select Show Status bar to turn the status bar on and off.

Animate connection diagram selects whether the graphics in the connection diagram are animated. Proxy Workbench will run more slowly with the connection diagram animated.

Run Proxy Workbench at startup runs Proxy Workbench automatically when the computer boots.

Run minimized starts Proxy Workbench as a minimized window.

Select Run from the system tray if you want Proxy Workbench to be displayed in the system tray. When this option is selected, the splash screen is not displayed. Also, Proxy Workbench will return to the system tray if it is closed by selecting the 'X' at the top right hand corner of the main screen.


Event Details

By clicking on an event in the Connection Diagram or drilling into the data in the Event History will result in the non-modal Event History window being displayed. This window gives all of the details of each event to the smallest level of detail.

Select the General tab to see the information about the associated socket connection and the details of the event and use the Data tab to see the actual data. Not all events will have data so the window sometimes displays "<No Data In This Event>".

Use the arrows at the top right right-hand corner of the screen to navigate through the events.


Connection Termination and Refusal

Connection Failure - Termination and Refusal

Connection Termination allows application developers to simulate how their software would behave under an Internet connection that is prone to dropping out. Use the connection Refusal settings to simulate a server that is overloaded or is intermittently unavailable.

A connection that has been been refused will be presented by the following icon in the Internet Connection Diagram:

If option can be turned on by double clicking in its panel at the bottom of the main form.


Bandwidth Throttling

Connection Failure - Bandwidth Throttling

Bandwidth throttling allows application developers to test their software on slow or error prone Internet connections. Use the options to throttle either client-to-server or server-to-client communications. Throttling only applies to data being sent out of Proxy Workbench. Proxy Workbench buffers all incoming data until it is ready for transmission.

Data whose transmission has been throttled will be represented by the following icons in the Internet Connection Diagram:

If option can be turned on by double clicking in its panel at the bottom of the main form.


Connection Dangling

Connection Failure - Connection Dangling

Connection dangling allows application developers to simulate a disconnected network cable. In these situations the connection appears to be open but no data is flowing. The connection dangling options allow you to specify the period of time before a connection is dangled and the duration of the dangle. Also you can set the action to perform after the dangling has completed. The connection can either be closed, remain open and the data lost or start sending the data. It will be sent at the throttling speed. Alternatively, you can start dangling connections connections on-the-fly by clicking the 'Start Dangling All Open Connections' command button.

Any data received during the dangling period is buffered. If the remote client or server disconnects during the dangle then the other side will be disconnected only after the dangle has completed. The beginning and the end of dangling is represented by the following icons in the Internet Connection Diagram:

If option can be turned on by double clicking in its panel at the bottom of the main form.


Real Time Logging

The real time logging allow you to record everything Proxy Workbench does to a text file. This allows the information to be readily imported in a spreadsheet or database so that the most advanced analysis can be performed on the data. This option can create very large files very quickly if misused. The format of the file is comma separated values. Any carriage returns, line feeds and double inverted commas in the data are replaced by "<" and the ASCII code of the character followed by another ">". If option can be turned on by double clicking in its panel at the bottom of the main form.


tcpIQ and Sigma Solutions

tcpIQ is a domain name owned by Sigma Solutions. Sigma Solutions is an Australian based software development shop specializing in Internet applications and Internetworking.

tcpIQ is the Sigma Solutions shop front used to emphasize Sigma Solution's particular skills. Consequently, when purchasing a product from tcpIQ you will see Sigma Solutions on the receipt. All email correspondence in regards to tcpIQ should be directed to support@sigmasolutions.com.au In addition, if you visit www.sigmasolutions.com.au you will be taken to the tcpIQ web site.


Purchasing of Proxy Workbench

To purchase Proxy Workbench or any of the tcpIQ products, go to the tcpIQ web site at www.tcpIQ.com and follow the links.

All online purchases are carried out over secure protocols.

If you or your company does not feel comfortable with entering your credit card details over the Internet then alternative arrangements are readily available. Simply contact tcpIQ.


Bulk Discounts

Generous discounts are available to customers wishing to purchase multiple copies of Proxy Workbench and any tcpIQ product.

Please contact tcpIQ by email at support@sigmasolutions.com.au


Support

Free support is offered to all users of Proxy Workbench - registered or evaluating.

Before contacting tcpIQ, please remember that Proxy Workbench is inherently self documenting. If something is going wrong then the answer can generally be solved by looking at the connection diagram.

For support please contact tcpIQ at support@sigmasolutions.com.au


Evaluation

Proxy Workbench is free to download off the Internet and evaluate for 30 days. Thereafter, Proxy Workbench will not function until it is purchased from the tcpIQ web site at www.tcpIQ.com.


Customization

If there are any protocols unique to your business that Proxy Workbench does not handle then please be sure to contact tcpIQ at support@sigmsolutions.com.au. Arrangements can be made to have your protocol included in the list of supported protocols.


Copyright

Proxy Workbench
(c) Copyright 2001
Sigma Solutions

This program is protected by Australian and International copyright laws.

Contact:
Sigma Solutions
support@sigmasolutions.com.au
www.sigmasolutions.com.au